home *** CD-ROM | disk | FTP | other *** search
- package javax.swing.tree;
-
- import java.io.IOException;
- import java.io.ObjectInputStream;
- import java.io.ObjectOutputStream;
- import java.io.Serializable;
- import java.util.Vector;
-
- public class TreePath implements Serializable {
- private TreePath parentPath;
- private transient Object lastPathComponent;
-
- protected TreePath() {
- }
-
- public TreePath(Object var1) {
- if (var1 == null) {
- throw new IllegalArgumentException("path in TreePath must be non null.");
- } else {
- this.lastPathComponent = var1;
- this.parentPath = null;
- }
- }
-
- protected TreePath(TreePath var1, Object var2) {
- if (var2 == null) {
- throw new IllegalArgumentException("path in TreePath must be non null.");
- } else {
- this.parentPath = var1;
- this.lastPathComponent = var2;
- }
- }
-
- public TreePath(Object[] var1) {
- if (var1 != null && var1.length != 0) {
- this.lastPathComponent = var1[var1.length - 1];
- if (var1.length > 1) {
- this.parentPath = new TreePath(var1, var1.length - 1);
- }
-
- } else {
- throw new IllegalArgumentException("path in TreePath must be non null and not empty.");
- }
- }
-
- protected TreePath(Object[] var1, int var2) {
- this.lastPathComponent = var1[var2 - 1];
- if (var2 > 1) {
- this.parentPath = new TreePath(var1, var2 - 1);
- }
-
- }
-
- public boolean equals(Object var1) {
- if (var1 == this) {
- return true;
- } else if (!(var1 instanceof TreePath)) {
- return false;
- } else {
- TreePath var2 = (TreePath)var1;
- if (this.getPathCount() != var2.getPathCount()) {
- return false;
- } else {
- for(TreePath var3 = this; var3 != null; var3 = var3.parentPath) {
- if (!var3.lastPathComponent.equals(var2.lastPathComponent)) {
- return false;
- }
-
- var2 = var2.parentPath;
- }
-
- return true;
- }
- }
- }
-
- public Object getLastPathComponent() {
- return this.lastPathComponent;
- }
-
- public TreePath getParentPath() {
- return this.parentPath;
- }
-
- public Object[] getPath() {
- int var1 = this.getPathCount();
- Object[] var2 = new Object[var1--];
-
- for(TreePath var3 = this; var3 != null; var3 = var3.parentPath) {
- var2[var1--] = var3.lastPathComponent;
- }
-
- return var2;
- }
-
- public Object getPathComponent(int var1) {
- int var2 = this.getPathCount();
- if (var1 >= 0 && var1 < var2) {
- TreePath var3 = this;
-
- for(int var4 = var2 - 1; var4 != var1; --var4) {
- var3 = var3.parentPath;
- }
-
- return var3.lastPathComponent;
- } else {
- throw new IllegalArgumentException("Index " + var1 + " is out of the specified range");
- }
- }
-
- public int getPathCount() {
- int var1 = 0;
-
- for(TreePath var2 = this; var2 != null; var2 = var2.parentPath) {
- ++var1;
- }
-
- return var1;
- }
-
- public int hashCode() {
- return this.lastPathComponent.hashCode();
- }
-
- public boolean isDescendant(TreePath var1) {
- if (var1 == this) {
- return true;
- } else if (var1 == null) {
- return false;
- } else {
- int var2 = this.getPathCount();
- int var3 = var1.getPathCount();
- if (var3 < var2) {
- return false;
- } else {
- while(var3-- > var2) {
- var1 = var1.getParentPath();
- }
-
- return this.equals(var1);
- }
- }
- }
-
- public TreePath pathByAddingChild(Object var1) {
- if (var1 == null) {
- throw new NullPointerException("Null child not allowed");
- } else {
- return new TreePath(this, var1);
- }
- }
-
- private void readObject(ObjectInputStream var1) throws IOException, ClassNotFoundException {
- var1.defaultReadObject();
- Vector var2 = (Vector)var1.readObject();
- int var3 = 0;
- int var4 = var2.size();
- if (var3 < var4 && var2.elementAt(var3).equals("lastPathComponent")) {
- ++var3;
- this.lastPathComponent = var2.elementAt(var3);
- ++var3;
- }
-
- }
-
- public String toString() {
- StringBuffer var1 = new StringBuffer("[");
- int var2 = 0;
-
- for(int var3 = this.getPathCount(); var2 < var3; ++var2) {
- if (var2 > 0) {
- var1.append(", ");
- }
-
- var1.append(this.getPathComponent(var2));
- }
-
- var1.append("]");
- return var1.toString();
- }
-
- private void writeObject(ObjectOutputStream var1) throws IOException {
- var1.defaultWriteObject();
- Vector var2 = new Vector();
- boolean var3 = true;
- if (this.lastPathComponent != null && this.lastPathComponent instanceof Serializable) {
- var2.addElement("lastPathComponent");
- var2.addElement(this.lastPathComponent);
- }
-
- var1.writeObject(var2);
- }
- }
-